import request from '@/utils/request'
import request2 from '@/utils/request2'
import { projectApiUrl, qualityApiUrl, safetyApiUrl } from '@/api/config'

/**
 * Quality类，提供标准的质量接口调用api
 */
export default class Quality {
  /**
   * 构造函数
   * @param {String} subSys 模块英文名（小写）
   * @param {String} module 子模块英文名（小写）
   * @param {String} needUpdateSuffix 是否需要在编辑时添加 /update 后缀
   */
  constructor(subSys, module, needUpdateSuffix) {
    this.subSys = subSys
    this.module = module
    this.needUpdateSuffix = !!needUpdateSuffix
  }

  /**
   * 查询（get）
   * @param parameter
   */
  getList(parameter) {
    return request({
      url: this.subSys + this.module,
      method: '',
      params: parameter
    })
  }

   /**
   * 查询（post）
   * @param parameter
   */
     postList(data) {
      return request({
        url: this.subSys + this.module + '/list',
        method: 'post',
        data
      })
    }
  

  /**
   * 下载（get）
   * @param parameter
   */
  download(parameter) {
    return request({
      url: this.subSys + this.module,
      method: 'get',
      responseType: 'arraybuffer',
      params: parameter
    })
  }

  /**
   * 查询（post）
   * @param parameter
   */
  getToptic(data) {
    return request({
      url: this.subSys + this.module + '/topic',
      method: 'post',
      data
    })
  }
  // 打印
  generateBatchDoc(params) {
    return request({
      url: this.subSys + this.module + '/generateBatchDoc',
      method: 'get',
      params
    })
  }
  /**
   检查记录-打印
   */
  print(params, data) {
    return request2({
      url: safetyApiUrl + '/inspection-rectification/print/' + params.id,
      method: 'get',
      params, data
    })
  }

  /**
   * 查询（get），同上
   * @param parameter
   */
  getList3(parameter) {
    return request2({
      url: this.subSys + '/menBySafe',
      method: 'get',
      params: parameter
    })
  }

  /**
   * 查询班级
   * @param parameter
   */
  getTeamList(parameter) {
    return request2({
      url: this.subSys + '/team',
      method: 'get',
      params: parameter
    })
  }

  /**
   * 查询（get）
   * @param parameter
   */
  getList2(parameter) {
    return request2({
      url: projectApiUrl + '/project/sub-manager/queryTeamMemList',
      method: 'get',
      params: parameter
    })
  }

  /**
   * 查询（post）
   * @param parameter
   */
  getListByQuery(data) {
    return request({
      url: this.subSys + this.module + '/query',
      method: 'post',
      data
    })
  }

  /**
   * 查询（post）
   * @param parameter
   */
  getQueryDetails(data) {
    return request({
      url: this.subSys + this.module + '/queryDetails',
      method: 'post',
      data
    })
  }

  /**
   * 查询全部（get）
   * @param parameter
   */
  getAll(parameter) {
    return request({
      url: this.subSys + this.module + '/all',
      method: 'get',
      params: parameter
    })
  }

  /**
   * 详情（get）
   * @param parameter
   */
  getDetail(parameter) {
    return request({
      url: this.subSys + this.module + '/detail',
      method: 'get',
      params: parameter
    })
  }
  /**
   * 导出全部 样板计划（get）
   * @param parameter
   */
  expAll(id) {
    return request({
      url: this.subSys + this.module + `/excels/${id}`,
      method: 'get',
      responseType:'blob'
    })
  }
  /**
   * 详情（get）
   * @param parameter
   */
  getDetailId(parameter) {
    return request({
      url: this.subSys + this.module + '/detail/detailId',
      method: 'get',
      params: parameter
    })
  }
  /**
   * 补录
   * @param parameter
   */
  again(data) {
    return request({
      url: this.subSys + this.module + '/again',
      method: 'post',
      data
    })
  }
  // 添加小组成员
  addMembers(data) {
    return request({
      url: this.subSys + this.module + '/add/members',
      method: 'post',
      data
    })
  }
  /**
   * 继承(post)
   * @param parameter
   */
  postInherit(data) {
    return request({
      url: this.subSys + this.module + '/inherit',
      method: 'post',
      data
    })
  }
  /**
   * 详情（get）
   * @param parameter
   */
  postDetail(data) {
    return request({
      url: this.subSys + this.module + '/detail',
      method: 'post',
      data
    })
  }

  /**
   * 数据回显（get）
   * @param parameter
   */
  getDetails(parameter) {
    return request({
      url: this.subSys + this.module + '/check-detail',
      method: 'get',
      params: parameter
    })
  }

  /**
   * 添加（post）
   * @param parameter
   */
  create(data) {
    return request({
      url: this.subSys + this.module,
      method: 'post',
      data
    })
  }

  /**
   * 添加（post）
   * @param parameter
   */
  handleCreate(data) {
    return request({
      url: this.subSys + this.module + '/create',
      method: 'post',
      data
    })
  }

  /**
   * 添加（post）
   * @param parameter
   */
  add(data) {
    return request({
      url: this.subSys + this.module + '/add',
      method: 'post',
      data
    })
  }

  /**
   * 编辑（put）
   * @param parameter
   */
  update(data) {
    const url = this.needUpdateSuffix ? this.subSys + this.module + '/update' : this.subSys + this.module
    return request({
      url: url,
      method: 'post',
      data
    })
  }

  /**
   * 编辑（post）
   * @param parameter
   */
  updatePost(data) {
    return request({
      url: this.subSys + this.module + '/update',
      method: 'post',
      data
    })
  }

  /**
   * 移除（delete）
   * @param parameter
   */
  remove(data) {
    return request({
      url: this.subSys + this.module + '/del',
      method: 'post',
      data
    })
  }
  /**
   * 删除（post）
   * @param parameter
   */
  del(id) {
    return request({
      url: `${this.subSys}${this.module}/del/${id}`,
      method: 'post'
    })
  }
  /**
   * 移除（delete）
   * @param parameter
   */
  delete(params) {
    return request({
      url: this.subSys + this.module + '/delete',
      method: 'post',
      params
    })
  }

  /**
   * 停启用
   * @param parameter
   */
  switchStatus(data) {
    return request({
      url: this.subSys + this.module + '/status',
      method: 'post',
      data
    })
  }

  /**
   * 汇总
   * @param parameter
   */
  count(data) {
    return request({
      url: this.subSys + this.module + '/count',
      method: 'post',
      data
    })
  }
  /**
     * 汇总
     * @param parameter
     */
  countGet(params) {
    return request({
      url: this.subSys + this.module + '/count',
      method: 'get',
      params
    })
  }
  /**
   * 汇总
   * @param parameter
   */
  summary(data) {
    return request({
      url: this.subSys + this.module + '/summary/summary',
      method: 'post',
      data
    })
  }

  /**
   * 汇总
   * @param parameter
   */
  statistics(data) {
    return request({
      url: this.subSys + this.module + '/statistics',
      method: 'post',
      data
    })
  }


  /**
   * 上报
   * @param parameter
   */
  upgrade(data) {
    return request({
      url: this.subSys + this.module + '/upgrade',
      method: 'post',
      data
    })
  }

  /**
   * 落实金额
   * @param parameter
   */
  implement(data) {
    return request({
      url: this.subSys + this.module + '/implement',
      method: 'post',
      data
    })
  }

  /**
   * 树
   * @param parameter
   */
  getTree(params) {
    return request({
      url: this.subSys + this.module + '/tree',
      method: 'get',
      params
    })
  }

  /**
   * 重构
   * @param parameter
   */
  refactor(data) {
    return request({
      url: this.subSys + this.module + '/refactor',
      method: 'post',
      data
    })
  }

  /**
   * 调整
   * @param parameter
   */
  adjustment(data) {
    return request({
      url: this.subSys + this.module + '/adjustment',
      method: 'post',
      data
    })
  }

  /**
   * 历史
   * @param parameter
   */
  history(params) {
    return request({
      url: this.subSys + this.module + '/history',
      method: 'get',
      params
    })
  }

  /**
   * 历史
   * @param parameter
   */
  getHistory(params) {
    return request({
      url: this.subSys + this.module + '/history/' + params.id,
      method: 'get',
    })
  }

  /**
   * 历史详情
   * @param parameter
   */
  historyDetail(params) {
    return request({
      url: this.subSys + this.module + '/detail/history',
      method: 'get',
      params
    })
  }
  /**
   * 导出全部 新六项措施计划管理（get）
   * @param parameter
   */
  expAllFn(id) {
    return request({
      url: this.subSys + this.module + `/excels/${id}`,
      method: 'get',
      responseType:'blob'
    })
  }
  /**
   * 详情-记录
   * @param parameter
   */
  records(params) {
    return request({
      url: this.subSys + this.module + '/records',
      method: 'get',
      params
    })
  }

  /**
   * 详情-记录
   * @param parameter
   */
  record(params) {
    return request({
      url: this.subSys + this.module + '/record',
      method: 'get',
      params
    })
  }

  /**
   * 通过项目id查询计划
   * @param parameter
   */
  planItem(params) {
    return request({
      url: this.subSys + this.module + '/plan-Item',
      method: 'get',
      params
    })
  }

  /**
   * 列表post
   * @param parameter
   */
   postlist(data) {
    return request({
      url: this.subSys + this.module + '/list/list',
      method: 'post',
      data
    })
  }


  /**
   * 列表
   * @param parameter
   */
  list(params) {
    return request({
      url: this.subSys + this.module + '/list',
      method: 'get',
      params
    })
  }

  /**
   * 下拉框
   * @param parameter
   */
  down(params) {
    return request({
      url: this.subSys + this.module + '/down',
      method: 'get',
      params
    })
  }

  /**
   * 下拉框
   * @param parameter
   */
  downPost(data) {
    return request({
      url: this.subSys + this.module + '/down',
      method: 'post',
      data
    })
  }

  /**
   * 导入
   * @param parameter
   */
  imp(data) {
    return request({
      url: this.subSys + this.module + '/imp',
      method: 'post',
      data
    })
  }

  /**
   * 摘取
   * @param parameter
   */
  pickHighlight(data) {
    return request({
      url: this.subSys + this.module + '/pickHighlight',
      method: 'post',
      data
    })
  }

  /**
   * 获取编号
   * @param parameter
   */
  getNumber(id) {
    return request({
      url: this.subSys + this.module + '/number/' + id,
      method: 'get'
    })
  }

  /**
   * 历史详情（get）
   * @param parameter
   */
  getHisDetail(parameter) {
    return request({
      url: `${this.subSys}${this.module}/getHisDetail/${parameter.id}/${parameter.historyId}`,
      method: 'get'
    })
  }

  /**
   * 试验台帐的试验计划
   * @param parameter
   */
  getQueryDetail(data) {
    return request({
      url: `${this.subSys}${this.module}/query/details`,
      method: 'post',
      data
    })
  }

  /**
   * 批量打印
   * @param parameter
   */
  batchPrint(data) {
    return request({
      url: `${this.subSys}${this.module}/batchPrint`,
      method: 'post',
      data
    })
  }

  /**
   * 批量打印
   * @param parameter
   */
  printBatch(data) {
    return request({
      url: `${this.subSys}${this.module}/print/batch`,
      method: 'post',
      data
    })
  }

  /**
   * 获取项目列表-一级列表
   * @param parameter
   */
  getProjectPlan(data) {
    return request({
      url: `${this.subSys}${this.module}/getProjectPlan`,
      method: 'post',
      data
    })
  }

  /**
   * 通过风险管控计划ID查询风险管控记录-三级列表
   * @param parameter
   */
  queryRecord(data) {
    return request({
      url: `${this.subSys}${this.module}/queryRecord`,
      method: 'post',
      data
    })
  }

  /**
   * 通过id获取详情
   * @param parameter
   */
  getDetailById(id) {
    return request({
      url: `${this.subSys}${this.module}/${id}`,
      method: 'get'
    })
  }

  /**
   * 根据检查区域id查询责任人
   * @param parameter
   */
  getNodeStatusById(id) {
    return request({
      url: `${this.subSys}${this.module}/getNodeStatusById/${id}`,
      method: 'get'
    })
  }

  /**
   * 查看试验记录列表
   * @param parameter
   */
  getRecordList(params) {
    return request({
      url: `${this.subSys}${this.module}/record/list`,
      method: 'get',
      params
    })
  }

  /**
   * 查询节点详情
   * @param parameter
   */
  getDetailsNode(params) {
    return request({
      url: `${this.subSys}${this.module}/detailsNode`,
      method: 'get',
      params
    })
  }
  /**
   * 查询节点详情
   * @param parameter
   */
  getDetailsNode(params) {
    return request({
      url: `${this.subSys}${this.module}/detailsNode`,
      method: 'get',
      params
    })
  }
  /**
   * 添加节点
   * @param parameter
   */
  addNode(data) {
    return request({
      url: `${this.subSys}${this.module}/addNode`,
      method: 'post',
      data
    })
  }
  /**
   * 编辑节点
   * @param parameter
   */
  updateNode(data) {
    return request({
      url: `${this.subSys}${this.module}/updateNode`,
      method: 'post',
      data
    })
  }
  /**
   * 删除节点
   * @param parameter
   */
  deleteNode(params) {
    return request({
      url: `${this.subSys}${this.module}/deleteNode`,
      method: 'get',
      params
    })
  }
  /**
   * 添加附件
   * @param parameter
   */
  addFile(data) {
    return request({
      url: `${this.subSys}${this.module}/addFile`,
      method: 'post',
      data
    })
  }


  /**
  * 停启用
  * @param parameter
  */
  switchDisable(params) {
    return request({
      url: `${this.subSys}${this.module}/disable`,
      method: 'get',
      params
    })
  }

  /**
   * 批量打印pdf
   * @param parameter
   */
  batchPrintPdf(data) {
    return request({
      url: `${this.subSys}${this.module}/print`,
      method: 'post',
      data
    })
  }
  /**
   * 签到
   * @param data
   */
  signStatic(data) {
    return request({
      url: `${this.subSys}${this.module}/sign-static`,
      method: 'post',
      data
    })
  }
  /**
   * 下发信息列表单条详情
   * @param data
   */
  detailInfo(params) {
    return request({
      url: `${this.subSys}${this.module}/detail/detail`,
      method: 'get',
      params
    })
  }
  /**
   * 打印
   * @param parameter
   */
  primaryPrint(id) {
    return request({
      url: `${this.subSys}${this.module}/print/${id}`,
      method: 'get',
    })
  }

  /**
   * 确认签名
   * @param parameter
   */
  confirmSign(data) {
    return request({
      url: `${this.subSys}${this.module}/sign`,
      method: 'post',
      data
    })
  }

  /**
   * 通过项目ID获取小组列表数据
   * @param parameter
   */
  getGroup(projectId) {
    return request({
      url: `${this.subSys}${this.module}/group/${projectId}`,
      method: 'get'
    })
  }

  /**
   * 删除（post）
   * @param parameter
   */
  handleDelete(id) {
    return request({
      url: `${this.subSys}${this.module}/delete/${id}`,
      method: 'post'
    })
  }

  /**
   * 通过评审单位ID获取评审阶段
   * @param parameter
   */
  getStage(id) {
    return request({
      url: `${this.subSys}${this.module}/stage/${id}`,
      method: 'get'
    })
  }

  /**
   * 扣分
   * @param parameter
   */
  deductPoints(data) {
    return request({
      url: `${this.subSys}${this.module}/deductPoints`,
      method: 'post',
      data
    })
  }

  /**
   * 发布
   * @param parameter
   */
  release(data) {
    return request({
      url: `${this.subSys}${this.module}/release`,
      method: 'post',
      data
    })
  }

  /**
   * 代办查询
   * @param parameter
   */
  noticeDetail(params) {
    return request({
      url: `${this.subSys}${this.module}/noticeDetail`,
      method: 'get',
      params
    })
  }

  /**
     * 评分
     * @param parameter
     */
  handleScore(data) {
    return request({
      url: `${this.subSys}${this.module}/score`,
      method: 'post',
      data
    })
  }

  /**
     * 质量之星汇总-分公司
     * @param parameter
     */
  branchComSummary(data) {
    return request({
      url: `${this.subSys}${this.module}/branchComSummary/branchComSummary`,
      method: 'post',
      data
    })
  }

  /**
   * 质量之星汇总-项目
   * @param parameter
   */
  branchProjectSummary(data) {
    return request({
      url: `${this.subSys}${this.module}/branchProjectSummary/branchProjectSummary`,
      method: 'post',
      data
    })
  }

  /**
   * 质量之星推送至月报
   * @param parameter
   */
  pushMonth(data) {
    return request({
      url: `${this.subSys}${this.module}/monthReport`,
      method: 'post',
      data
    })
  }

  /**
   * 汇总
   * @param parameter
   */
  AllSummary(data) {
    return request({
      url: `${this.subSys}${this.module}/AllSummary/AllSummary`,
      method: 'post',
      data
    })
  }

  /**
   * 生成
   * @param parameter
   */
  generate(data) {
    return request({
      url: `${this.subSys}${this.module}/generate`,
      method: 'post',
      data
    })
  }

  /**
   * 问题引用
   * @param parameter
   */
   problemList(params) {
    return request({
      url: `${this.subSys}${this.module}/problem/list`,
      method: 'get',
      params
    })
  }

  /**
   * 补录
   * @param parameter
   */
  supplement(data) {
    return request({
      url: `${this.subSys}${this.module}/supplement`,
      method: 'post',
      data
    })
  }
  /**
   * 验证
   * @param parameter
   */
  verification(params) {
    return request({
      url: `${this.subSys}${this.module}/verification`,
      method: 'get',
      params
    })
  }

  /**
   * 待办详情
   * @param parameter
   */
  dealt(params) {
    return request({
      url: `${this.subSys}${this.module}/detail/dealt`,
      method: 'get',
      params
    })
  }
  /**
   * 导出
   * @param parameter
   */
  excel(params) {
    return request({
      url: `${this.subSys}${this.module}/excel`,
      method: 'get',
      responseType: 'blob',
      params
    })
  }
  /**
   * 上传资料
   * @param parameter
   */
   uploadFile(data) {
      return request({
        url: `${this.subSys}${this.module}/uploadFile`,
        method: 'post',
        data
      })
    }
}

